package com.maikobi.maikobi.utils;

import org.apache.commons.lang3.StringUtils;

/**
 * SQL 工具
 * 提供了一些用于增强SQL操作安全性的工具方法
 * @author: Maiko7
 * @create: 2025-07-15 11:11
 */
public class SqlUtils {
    /**
     * 校验排序字段是否合法（防止 SQL 注入）
     * 本方法旨在减少SQL注入的风险，通过禁止某些特殊字符的使用来确保传入的排序字段是安全的
     *
     * @param sortField 待验证的排序字段名称
     * @return 如果排序字段合法且不为空，则返回true；否则返回false
     */
    public static boolean validSortField(String sortField) {
        // 如果排序字段为空或者空白字符串，直接返回false，表示无效
        if (StringUtils.isBlank(sortField)) {
            return false;
        }
        // 判断排序字段中是否包含以下任意一个特殊字符：=、(、)、空格
        // 如果包含这些字符，返回false，表示排序字段不安全或不合法
        // 如果不包含，则返回true，表示排序字段合法
        return !StringUtils.containsAny(sortField, "=", "(", ")", " ");
    }

}
